Managing packet-based telephony

ABSTRACT

A system for assisting a user in selecting a packet-based telephony service provider (“PBTSP”) from a group of PBTSPs, and in registering the user with the selected PBTSP for outbound and/or inbound calling. The selection of a particular PBTSP may be stored in a database, and this stored information may be used to enable the user to exchange telephone call data with one of the PBTSPs. One preferred system receives data from the user&#39;s computer device, determines whether the user is registered with one the PBTSPs and, if so, transmits data to the computer device which enables it to exchange telephone call data with one of the PBTSPs. The system also receives telephone call data from the computer device, accesses contact information for a PBTSP, and transmits the received telephone call data to the PBTSP using the accessed contact information.

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of U.S. ProvisionalApplication No. 60/350,685 filed Oct. 22, 2001, the entire disclosure ofwhich is incorporated herein by reference.

FIELD OF THE INVENTION

[0002] The present invention relates to packet-based telephony,including Internet and other computer network-based telephony. Inparticular, the invention relates to managing packet-based telephonyservices provided to users by one or more packet-based telephony serviceproviders (“PBTSPs”)

BACKGROUND OF THE INVENTION

[0003] Many on-line service providers seek to provide users with afeature by which the users can place telephone calls from their computerdevices, using the computer devices as the equivalent of telephonehandsets. Rather than supporting this pc-to-phone functionalitydirectly, an on-line service provider may instead rely on an outsidevendor (i.e., a PBTSP) to support this service.

[0004] In one known implementation, all packet-based telephony callsinitiated by users of an on-line service provider are automaticallyrouted, by client software, directly to an outside PBTSP selected by theservice provider. In essence, the on-line service provider represents areferral service for the outside vendor, referring all its usersdesiring packet-based telephony service to the outside vendor. Thisimplementation suffers from certain disadvantages.

[0005] One disadvantage is that users are not provided input into theselection of their PBTSP. Thus, while other available PBTSPs may providesuperior service, offer better pricing, etc., the users must nonethelessemploy the outside vendor selected by the service provider, or foregothe packet-based telephony service.

[0006] Another disadvantage relates to the relative inability of theon-line service provider to manage or control the telephony serviceprovided to its users by the outside vendor. This can be particularlyproblematic where the outside vendor fails to provide users with anappropriate level of service, which may reflect poorly on the referringservice provider, or where a contractual relationship between theservice provider and the outside vendor terminates.

[0007] In view of the above, the inventors have recognized a need for asystem which allows service providers to more effectively managepacket-based telephony services provided to their users by outsidevendors, and a system which allows users to choose from among multiplePBTSPs.

SUMMARY OF THE INVENTION

[0008] One aspect of the present invention is a system for managing andsupporting packet-based telephony. The system includes a user database,and an account server for receiving data from a packet-based telephonyservice provider indicating that a user is registered therewith. Theaccount server also stores data in the user database indicating that theuser is registered with the packet-based telephony service provider. Thesystem also includes a configuration server for determining, byaccessing the user database, that the user is registered with thepacket-based telephony service provider, and for sending data to acomputer device associated with the user which enables the computerdevice to exchange data related to a packet-based telephone call withthe packet-based telephony service provider. A proxy server is providedfor receiving signaling data for the phone call from the computerdevice, and for sending the received signaling data to the packet-basedtelephony service provider.

[0009] Another aspect of the invention is a method for assisting a userin selecting a PBTSP from a group of PBTSPs, and in registering the userwith the selected PBTSP. Thus, users may select their PBTSPs based onparameters important to them, such as the PBTSPs' reputations, thegeographic regions served, the languages supported, pricing, etc. Theselection of a particular PBTSP by a user may be stored in a database,and this stored information may indicate that registration of the userwith the selected PBTSP is pending. Upon receiving information from theselected PBTSP indicating that the user is registered, the storedinformation may be modified to indicate that registration of the userwith the selected PBTSP has occurred. The stored information may be usedto enable (or not enable) the user to exchange telephone call data withone of the PBTSPs.

[0010] Yet another aspect of the invention is a method for managing andsupporting packet-based telephony service. The method receives data froma computer device associated with a user. The received data relates to apacket-based telephony service for the user. The method determineswhether the user is registered with one of multiple PBTSPs and, if so,transmits data to the user's computer device which enables the computerdevice to exchange telephone call data with one of the multiple PBTSPs.

[0011] Still another aspect of the invention is a method for supportinga packet-based telephone call initiated by a user via a computer device.The method receives telephone call data from the computer device througha computer network, accesses from a database contact information for aPBTSP, and transmits the received telephone call data to the PBTSPthrough a computer network using the accessed contact information.

[0012] Additional aspects of the invention include computer-readablemedia for implementing the systems and methods described herein, and forimplementing functions of user computer devices.

[0013] While some of the principal features and advantages of theinvention have been described above, a greater and more thoroughunderstanding of the invention may be attained by referring to thedrawings and the detailed description of preferred embodiments whichfollow.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 is a block diagram of a system and a computer device formanaging and supporting packet-based telephony according to oneembodiment of the present invention.

[0015]FIG. 2 illustrates a telephone dialer user interface prompting auser to sign up for packet-based telephony service.

[0016]FIG. 3 illustrates a web page prompting a user to select one ofmultiple packet-based telephony service providers.

[0017]FIG. 4 illustrates a telephone dialer user interface enabled bythe system of FIG. 1.

[0018]FIG. 5 is a block diagram of an exemplary computer device for usewith the present invention.

[0019] Corresponding reference characters indicate correspondingfeatures throughout the several views of the drawings.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0020] A system and computer device for managing and supportingpacket-based telephony according to one embodiment of the presentinvention are illustrated in FIG. 1 and indicated generally by referencecharacters 100 and 112, respectively. As shown in FIG. 1, the system 100includes a referral server 102, a configuration server 104, an accountserver 106, a proxy server 108, and a user database 110. As describedmore fully below, the servers 102-108 exchange data with the userdatabase 110, and with the computer device 112 through a packet-basedcomputer network 114, to manage and support packet-based telephonyservice for a user associated with the computer device 112. The accountserver 106 and the proxy server 108 also exchange data with severalpacket-based telephony service providers (“PBTSPs”) 116, 118, 120through a packet-based computer network 122, as further described below.

[0021] The packet-based computer networks 114, 122 shown in FIG. 1 mayeach (or together) represent a single private or public computer network(including, e.g., a virtual private network), or multiple private and/orpublic networks. In one embodiment, the packet-based computer network114 represents a local area network (LAN) connected to the Internetthrough a gateway, the packet-based computer network 122 represents theInternet, and the PBTSPs 116-120 are Internet telephony serviceproviders.

[0022] While only one computer device 112 is shown in FIG. 1, it shouldbe understood that the system 100 may support and exchange data with alarge number of such devices so as to manage and support packet-basedtelephony service for a large number of users. Likewise, although threePBTSPs 116-120 are shown in FIG. 1 for illustrative purposes, it shouldbe understood that the system 100 may be used with a much larger numberof PBTSPs, or as few as one PBTSP. The system 100 may also employservers and databases in addition to those shown illustratively in FIG.1.

[0023] In the particular embodiment under discussion, after the usersuccessfully logs into the system 100, the computer device 112 queriesthe configuration server 104 to determine whether the user is registeredwith one of the PBTSPs 116-120. In response, the configuration serveraccesses a record for the user from the user database 110. If the user'srecord indicates the user is registered with one of the PBTSPs 116-120,the configuration server transmits data to the computer device 112 whichenables the computer device to exchange telephone call data with theuser's PBTSP in a manner described below. In the particular embodimentunder discussion, the data provided to the computer device 112 enables atelephone dialer user interface in the computer device 112, which theuser can then use to place telephone calls. The configuration server 104may provide the computer device 112 with a set of web browser-stylelinks (e.g., URLs) specific to the user's PBTSP including, for example,a link to a graphical image identifying the user's PBTSP, a link to theuser's account information, a link to call status information, etc. Ifthe user is not registered with one of the PBTSPs, the configurationserver 104 provides data to the computer device 112 indicative of theuser's non-registered status.

[0024] When the user indicates a desire to place a telephone call usingthe computer device 112 (e.g., by selecting a “call” function from atoolbar displayed by the computer device), the computer device 112displays a telephone dialer user interface. If the user is not yetregistered with one of the PBTSPs 116-120, the computer device 112displays the telephone dialer user interface 202 shown in FIG. 2. Thetelephone dialer user interface 202 prompts the user to select a sign upbutton 204 (or, alternatively, a hyperlink) to register for telephoneservice. Because the user is not yet registered with one of the PBTSPs,the computer device 112 has not yet received data from the configurationserver 104 which enables the telephone dialer user interface 202.Accordingly, a dial button 206 on the telephone dialer user interface202 is disabled, as shown (in phantom) in FIG. 2, thereby preventing theuser from placing a telephone call through the computer device 112.

[0025] Selecting the sign up button 204 prompts the computer device 112to open a web browser application and send data to the referral server102 indicating the user's desire to register for telephone service. Inresponse, the referral server 102 serves a web page 302, shownillustratively in FIG. 3, to the computer device 112. The web page 302provides a list of the PBTSPs available to the user. The particularPBTSPs listed in the web page 302 may be selected by the system 100according to previously obtained information about the user, such as theuser's geographic region and spoken language. Web page 302 may alsoallow the user to receive a list of providers in other countries. In anyevent, providers available to the user may be listed according to arandom ordering, according to a weighting scheme (e.g., based oncontractual agreements assuring “top billing” to particular serviceproviders), according to a hybrid of these two approaches, or otherwise.

[0026] If the user selects one of the listed PBTSPs (e.g., by clicking a“sign up now” hyperlink for one of the PBTSPs, as shown in FIG. 3), dataindicative of the user's selection is sent by the computer device 112 tothe referral server 102.

[0027] For purposes of explanation, assume the user selected PBTSP 120of FIG. 1 from the exemplary web page 302 shown in FIG. 3. In responseto receiving data indicative of this selection, the referral server 102modifies the user's record stored in the user database 110 to indicatethat registration of the user with PBTSP 120 is pending. The referralserver 102 then assists the user in registering with PBTSP 120. In theparticular embodiment under discussion, the referral server 102 directsthe web browser application in the computer device 112 to a web site forPBTSP 120, where the user can register on-line with PBTSP 120 fortelephony service.

[0028] Once the user has completed the on-line signup process, PBTSP 120sends data to the account server 106 indicating that the user hasregistered therewith. In response, the account server 106 accesses theuser database 110 to confirm that registration of the user with PBTSP120 was pending. If the account server 106 is unable to confirm this,the account server 106 will send a failure message to PBTSP 120. Inresponse, PBTSP 120 may advise the user that it was unable tosuccessfully register the user for service, and may also prompt the userto contact an administrator of the system 100 for further assistance. Ifthe account server does confirm that registration of the user with PBTSP120 was pending, the account server 106 updates the user's record in theuser database 110 to indicate that the user's status with PBTSP 120 haschanged from pending to registered. The account server 106 also sends asuccess message to PBTSP 120. These communications between the accountserver 106 and PBTSP 120 are represented by arrow 124 in FIG. 1. Uponreceiving the success message, PBTSP 120 may advise the user that it hassuccessfully registered for telephony service, and may also advise theuser when such service will be activated, if not immediately.

[0029] Although the system 100 has been described above as assisting theuser in registering with a single service provider, it may also beconfigured to assist the user in registering with multiple serviceproviders, if desired.

[0030] Once registered, when the user indicates a desire to place atelephone call through the computer device 112, the computer device 112queries the configuration server 104 to determine whether the user isregistered with one of the PBTSPs 116-120 (unless this process hasalready occurred, such as when the user logged into the system 100). Inresponse, the configuration server 104 accesses the user's record fromthe user database 110 which indicates, in this example, that the user isregistered with PBTSP 120. The configuration server 104 thereforeprovides data to the computer device 112 which enables the computerdevice to display the telephone dialer user interface 402 illustrated inFIG. 4. As shown therein, the interface 402 includes a graphical image404 (e.g., a corporate logo) identifying PBTSP 120, and a hyperlink 406to the user's account information. In the case where the user isregistered with multiple service providers, the telephone dialerinterface may prompt the user to indicate which of the user's PBTSPsshould be used to service a particular call.

[0031] Via the interface 402 shown in FIG. 4, the user can place atelephone call by selecting the dial button 408 after entering atelephone number in field 410. The “telephone number” entered by theuser in field 410 may be any string of alphanumeric characters foraddressing a telephone device through a computer network and/or a PublicSwitched Telephone Network (“PSTN”), including but not limited to a10-digit telephone number following the convention used in NorthAmerica.

[0032] In response to the user selecting the dial button 408 afterentering a telephone number in field 410, the computer device 112 sendssignaling data for the telephone call to the proxy server 108, asindicated by arrow 126 in FIG. 1. Upon receiving the call signalingdata, the proxy server 108 accesses the user database 110 to retrievecontact information for the user's PBTSP (e.g., an IP address for, inthis example, a server 125 associated with the PBTSP 120), as indicatedby arrow 128 in FIG. 1. The proxy server 108 then forwards the signalingdata to PBTSP 120, as indicated by arrow 132 in FIG. 1, using theretrieved contact information. Alternatively, the contact informationused by the proxy server 108 to forward the signaling data may first beretrieved from the user database 110 by the configuration server 104,provided to the computer device 112 by the configuration server 104(e.g., along with or as the data which enables the telephone dialer userinterface), and then provided by the computer device 112 to the proxyserver 108 along with the signaling data. This alternative approach(which would not require arrow 128 of FIG. 1) would allow the proxyserver 108 to immediately forward the signaling data to the user's PBTSPwithout first having to access the contact information from the userdatabase 110, which could potentially create latency issues.

[0033] It should be noted that by requiring input from the user prior toregistering the user with a PBTSP, and then routing call signaling dataonly to a PBTSP with which the user is registered, the system 100prevents “slamming” of the user. That is, it protects the user frombecoming registered with or serviced by a PBTSP without the user'sknowledge or consent.

[0034] While the call signaling data is routed from the computer device112 to the system 100 for forwarding to PBTSP 120, as explained above,the computer device 112 sends call content data (e.g., media traffic) toPBTSP 120 directly, as indicated by arrow 130 in FIG. 1. In oneembodiment, this is done using contact information for PBTSP 120 (e.g.,the IP address for server 125) provided to the computer device 112 bythe proxy server 108 in response to receiving the signaling data.

[0035] Although the PBTSPs 116, 118, 120 are shown in FIG. 1 as havingone associated server 121, 123, 125, respectively, it should beunderstood that each PBTSP may employ multiple servers, including one ormore servers for handling call signaling data and one or more additionalservers for handling call content data. Thus, the contact informationprovided to the computer device 112 for routing the call content datamay differ from the contact information used by the proxy server 108 forrouting the call signaling data.

[0036] Depending on whether the telephone number entered by the user infield 410 of FIG. 4 maps to a conventional telephone device, PBTSP 120will route the received signaling data and call content data to agateway to a PSTN, or through an appropriate computer network to whichthe telephone device being called is connected. Thus, it should beunderstood that the computer device 112 may be used to call virtuallyany type of telephone device, including conventional telephone devices,computer devices capable of receiving packet-based telephone calls overa computer network, etc.

[0037] In the specific embodiment under discussion, the protocol usedbetween the computer device 112 and the configuration server 104, andbetween the PBTSPs and the account server 106, is a Hypertext TransferProtocol (“HTTP”). The protocol used between the computer device 112 andthe referral server 102 is HTTP. The protocols used to transmit the callsignaling data and the call content data are Session Initiation Protocol(“SIP”) and Real Time Protocol (“RTP”), respectively. As should beapparent, however, other suitable protocols may be used withoutdeparting from the scope of the invention.

[0038] In FIG. 1, arrows 134-140 (shown in phantom) representcommunications between the system 100, PBTSP 116, and PBTSP 118 tomanage and support packet-based telephony for users registered withPBTSP 116 and PBTSP 118.

[0039] While the system 100 and the computer device 112 have beendescribed above in the context of an outbound call placed by a userthrough the computer device 112, the user may likewise receive incomingtelephone calls through the computer device 112. For example, as part ofregistering with the PBTSP 120, the PBTSP 120 may provision a telephonenumber to the user for receiving telephone calls, and store contactinformation (e.g., a DNS name) for the user's proxy server 108.Thereafter, when the PBTSP 120 receives a telephone call placed to theuser's telephone number, the PBTSP 120 attempts to complete the callwith the computer device 112 by routing signaling data for the incomingcall to the proxy server 108. In response, the proxy server 108 accessesthe user database 110 to confirm that the user is registered with thePBTSP 120 (as well as, in one embodiment, to map the provisionedtelephone number to a device associated with the user, such as computerdevice 112). If so, the proxy server 108 can attempt to forward thereceived signaling data to the computer device 112. If the signalingdata is received by the computer device 112, the computer devicepresents an incoming call user interface (not shown) to the user. If theuser is present at the computer device and chooses to accept the callvia the incoming call user interface, the computer device 112 sends anappropriate acknowledgement (e.g., an SIP acknowledgement) to the proxyserver 108, which then forwards the acknowledgement to the PBTSP 120together with contact information (e.g., an IP address) for the computerdevice 112. The PBTSP 120 then completes the call by sending the callcontent data (i.e., media traffic) to the computer device 112 directlyusing the contact information for the computer device 112 received fromthe proxy server 108.

[0040] Rather than choosing to accept the call via the incoming calluser interface, the user may type in a telephone number (or select froma drop list, a directory of telephone numbers, etc.) to which theincoming call should be routed. In response, the computer device 112transmits appropriate signaling (i.e., call forwarding) information tothe PBTSP 120 via the proxy server 108. The PBTSP 120 then forwards theincoming call to the telephone number specified by the user.

[0041] In one embodiment, the proxy server 108 is configured to monitorthe user's presence on the computer device 112 (and/or on the computernetwork 114). For example, when the user logs on to the computer device112, the computer device sends a “register” message to the proxy server,indicating the user is now present on the computer device 112.Thereafter, the computer device periodically (e.g., every ten minutes)sends messages to the proxy server 108 to refresh that registrationwhile the user remains present on the computer device 112. If the proxyserver 108 does not receive such a message from the computer device fora predefined amount of time, the proxy server interprets this as anindication that the user is no longer present on the computer device 112(and/or on the computer network 114). The proxy server 108 uses thispresence information to determine how to respond upon receiving callsignaling data on behalf of the user from the user's PBTSP 120. If theuser has a presence on the computer device 112 when signaling data foran incoming call is received by the proxy server 108, the proxy serverforwards the signaling data to the computer device 112, and the computerdevice 112 responds by displaying the incoming call user interface. Theuser may then accept the call or choose to forward the call to anotherdevice, as explained above. If the user does not respond in a timelymanner via the incoming call user interface, or if the user responds bychoosing not to accept the call, or if the user does not have a presenceon the computer device 112 when signaling data for an incoming call isreceived by the proxy server 108, the proxy server 108 sends informationsignaling the user's unavailability to the PBTSP 120. In response, thePBTSP 120 may itself accept the incoming call and advise the caller(e.g., using a prerecorded or synthesized speech message) that the useris presently unavailable. Alternatively, the proxy server 108 can sendsignaling information to the PBTSP 120 which directs the PBTSP 120 toforward the incoming call to another device, such as the user's mobilephone, a voice mail system, etc., according to predefined rules or userselections.

[0042]FIG. 5 shows one example of a general purpose computing device inthe form of a computer 500. In one embodiment of the invention, acomputer such as the computer 500 is suitable for use as any of theservers 102-108 and/or the computer device 112 shown in FIG. 1. However,it should be understood that the computer device 112 need not be aconventional personal computer, and may be any device havingvoice-capability and configured to communicate with a packet-switchednetwork using packet-switching protocols, including IP phones, handhelddevices, mobile phones, mini-browsers, and the like. Further, it shouldbe understood that a user can use the same service configuration onmultiple devices, thereby implementing a form of user roaming. In otherwords, because the user's settings are stored in the system 100, thesesettings can be used by the user to place calls from any suitablecomputer device 112 accessible to the user at a given time. Conversely,multiple users can use a single computer device (one at a time), andtheir corresponding settings stored in the system 100, to placepacket-based telephone calls according to the present invention.

[0043] A single computer (such as computer 500 of FIG. 5) having one ormore processors may also be used to implement several of the servers102-108 shown in FIG. 1, as should be apparent.

[0044] As illustrated in FIG. 5, computer 500 has one or more processorsor processing units 502 and a system memory 504. A system bus 506couples various system components including the system memory 504 to theprocessors 502. The bus 506 represents one or more of any of severaltypes of bus structures, including a memory bus or memory controller, aperipheral bus, an accelerated graphics port, and a processor or localbus using any of a variety of bus architectures. By way of example, andnot limitation, such architectures include Industry StandardArchitecture (ISA) bus, Micro Channel Architecture (MCA) bus, EnhancedISA (EISA) bus, Video Electronics Standards Association (VESA) localbus, and Peripheral Component Interconnect (PCI) bus also known asMezzanine bus.

[0045] The computer 500 typically has at least some form of computerreadable media. Computer readable media, which include both volatile andnonvolatile media, removable and non-removable media, may be anyavailable medium that can be accessed by computer 500. By way of exampleand not limitation, computer readable media comprise computer storagemedia and communication media. Computer storage media include volatileand nonvolatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.For example, computer storage media include RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical disk storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium that can be used to store the desired information and that canaccessed by computer 500. Communication media typically embody computerreadable instructions, data structures, program modules, or other datain a modulated data signal such as a carrier wave or other transportmechanism and include any information delivery media. Those skilled inthe art are familiar with the modulated data signal, which has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. Wired media, such as a wired network ordirect-wired connection, and wireless media, such as acoustic, RF,infrared, and other wireless media, are examples of communication media.Combinations of the any of the above are also included within the scopeof computer readable media.

[0046] The system memory 504 includes computer storage media in the formof removable and/or non-removable, volatile and/or nonvolatile memory.In the exemplary computer 500 illustrated in FIG. 5, system memory 504includes read only memory (ROM) 508 and random access memory (RAM) 510.A basic input/output system 512 (BIOS), containing the basic routinesthat help to transfer information between elements within computer 500,such as during startup, is typically stored in ROM 508. RAM 510typically contains data and/or program modules that are immediatelyaccessible to and/or presently being operated on by processing unit 502.By way of example, and not limitation, FIG. 5 illustrates operatingsystem 514, application programs 516, other program modules 518, andprogram data 520.

[0047] The computer 500 may also include other removable/non-removable,volatile/nonvolatile computer storage media. For example, FIG. 5illustrates a hard disk drive 522 that reads from or writes tonon-removable, nonvolatile magnetic media. FIG. 5 also shows a magneticdisk drive 524 that reads from or writes to a removable, nonvolatilemagnetic disk 526, and an optical disk drive 528 that reads from orwrites to a removable, nonvolatile optical disk 530 such as a CD-ROM orother optical media. Other removable/non-removable, volatile/nonvolatilecomputer storage media that can be used in the exemplary operatingenvironment include, but are not limited to, magnetic tape cassettes,flash memory cards, digital versatile disks, digital video tape, solidstate RAM, solid state ROM, and the like. The hard disk drive 522, andmagnetic disk drive 524 and optical disk drive 528 are typicallyconnected to the system bus 506 by a non-volatile memory interface, suchas interface 532.

[0048] The drives or other mass storage devices and their associatedcomputer storage media discussed above and illustrated in FIG. 5,provide storage of computer readable instructions, data structures,program modules and other data for the computer 500. In FIG. 5, forexample, hard disk drive 522 is illustrated as storing operating system540, application programs 542, other program modules 544, and programdata 546. Note that these components can either be the same as ordifferent from operating system 514, application programs 516, otherprogram modules 518, and program data 520. Operating system 540,application programs 542, other program modules 544, and program data546 are given different numbers here to illustrate that, at a minimum,they are different copies.

[0049] A user may enter commands and information into computer 500through input devices such as a keyboard 548 and a pointing device 550(e.g., a mouse, trackball, pen, or touch pad). Other input devices (notshown) may include a microphone, joystick, game pad, satellite dish,scanner, or the like. These and other input devices are connected toprocessing unit 502 through a user input interface 552 that is coupledto system bus 506, but may be connected by other interface and busstructures, such as a parallel port, game port, or a universal serialbus (USB). A monitor 544 or other type of display device is alsoconnected to system bus 506 via an interface, such as a video interface556. In addition to the monitor 554, computers often include otherperipheral output devices (not shown) such as a printer and speakers,which may be connected through an output peripheral interface (notshown).

[0050] The computer 500 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 558. The remote computer 558 may be a personal computer, aserver, a router, a network PC, a peer device or other common networknode, and typically includes many or all of the elements described aboverelative to computer 500. The logical connections depicted in FIG. 5include a local area network (LAN) 560 and a wide area network (WAN)562, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks,intranets, and global computer networks (e.g., the Internet).

[0051] When used in a local area networking environment, computer 500 isconnected to the LAN 560 through a network interface or adapter 564.When used in a wide area networking environment, computer 500 typicallyincludes a modem 566 or other means for establishing communications overthe WAN 562, such as the Internet. The modem 566, which may be internalor external, is connected to system bus 506 via the user input interface552, or other appropriate mechanism. In a networked environment, programmodules depicted relative to computer 500, or portions thereof, may bestored in a remote memory storage device (not shown). By way of example,and not limitation, FIG. 5 illustrates remote application programs 568as residing on the memory device. It will be appreciated that thenetwork connections shown are exemplary and other means of establishinga communications link between the computers may be used.

[0052] Generally, the data processors of computer 500 are programmed bymeans of instructions stored at different times in the variouscomputer-readable storage media of the computer. Programs and operatingsystems are typically distributed, for example, on floppy disks orCD-ROMs. From there, they are installed or loaded into the secondarymemory of a computer. At execution, they are loaded at least partiallyinto the computer's primary electronic memory. The invention describedherein includes these and other various types of computer-readablestorage media when such media contain instructions or programs forimplementing the functions described above in conjunction with amicroprocessor or other data processor. The invention also includes thecomputer itself when programmed according to the methods and techniquesdescribed herein.

[0053] For purposes of illustration, programs and other executableprogram components, such as the operating system, are illustrated inFIG. 5 as discrete blocks. It is recognized, however, that such programsand components reside at various times in different storage componentsof the computer, and are executed by the data processor(s) of thecomputer.

[0054] When introducing elements of the present invention or thepreferred embodiment(s) thereof, the articles “a”, “an”, “the” and“said” are intended to mean that there are one or more of the elements.The terms “comprising”, “including” and “having” are intended to beinclusive and mean that there may be additional elements other than thelisted elements.

[0055] As various changes could be made in the above constructionswithout departing from the scope of the invention, it is intended thatall matter contained in the above description or shown in theaccompanying drawings shall be interpreted as illustrative and not in alimiting sense.

What is claimed:
 1. A method for assisting a user in selecting andregistering with one of a plurality of packet-based telephony serviceproviders, the method comprising: providing to the user a list of thepacket-based telephony service providers; receiving from the user aselection of one of the packet-based telephony service providers of thelist; and assisting the user in registering for service from said one ofthe packet-based telephony service providers.
 2. The method of claim 1wherein providing includes providing the user with the list ofpacket-based telephony service providers in response to receivinginformation indicative of the user's desire for packet-based telephonyservice.
 3. The method of claim 1 further comprising storing informationrepresenting the selection by the user.
 4. The method of claim 3 whereinstoring includes storing information indicating that registration of theuser with said one of the packet-based telephony service providers ispending.
 5. The method of claim 4 further comprising receivinginformation from said one of the packet-based telephony serviceproviders indicating that the user is registered therewith, andmodifying the stored information to indicate that registration of theuser with said one of the packet-based telephony service providers hasoccurred.
 6. The method of claim 1 wherein assisting includes directingthe user to a web site associated with said one of the packet-basedtelephony service providers.
 7. The method of claim 1 wherein thepacket-based telephony service providers of the list are Internettelephony service providers.
 8. The method of claim 1 further comprisingdetermining, prior to the providing, that the user is not registered forservice from any of said packet-based telephone service providers.
 9. Acomputer-readable medium having computer-executable instructions forperforming the method of claim
 1. 10. A method of supporting apacket-based telephony service, the method comprising: receiving datafrom a computer device through a communications network, said computerdevice being associated with a user, said data relating to a telephonyservice for the user; and transmitting data through the communicationsnetwork to the computer device which enables the computer device toexchange data related to a telephone call with one of a plurality ofpacket-based telephony service providers.
 11. The method of claim 10further comprising determining whether the user is registered with oneof the plurality of packet-based telephony service providers, andwherein transmitting includes transmitting said data to the computerdevice if the user is so registered.
 12. The method of claim 10 whereinthe computer device includes a telephone dialer user interface andwherein transmitting includes transmitting data to the computer devicewhich enables the telephone dialer user interface.
 13. The method ofclaim 10 wherein transmitting includes transmitting to the computerdevice contact data for a server associated with said one of theplurality of packet-based telephony service providers.
 14. The method ofclaim 10 further comprising storing information relating to each of aplurality of users in a database, the information stored for each userrepresenting whether such user is registered with any one of theplurality of packet-based telephony service providers.
 15. Acomputer-readable medium having computer-executable instructions forperforming the method of claim
 10. 16. A computer-readable medium havingcomputer-executable instructions for performing operations comprising:sending information to a server associated with a first party, saidinformation relating to a packet-based telephony service desired by auser; receiving information from the server associated with the firstparty, the received information enabling the packet-based telephonyservice for the user; and via the enabled packet-based telephonyservice, sending telephone call data to a server associated with asecond party.
 17. The computer-readable medium of claim 16 whereinsending information includes sending information requesting whether theuser is registered with a packet-based telephony service provider. 18.The computer-readable medium of claim 17 wherein said second party isthe packet-based telephony service provider.
 19. The computer-readablemedium of claim 16 wherein receiving information includes receivinginformation which enables a telephone dialer user interface throughwhich the user can place a telephone call.
 20. The computer-readablemedium of claim 16 wherein receiving information includes receivingcontact data for the server associated with the second party, andwherein sending telephone call data includes sending telephone call datato the server associated with the second party using the receivedcontact data.
 21. The computer-readable medium of claim 16 whereinsending information includes sending information to the serverassociated with the first party in response to user input.
 22. A methodof supporting a packet-based telephone call initiated by a user via acomputer device, the method comprising: receiving telephone call datafrom said computer device through a computer network; accessing from adatabase contact information for a packet-based telephony serviceprovider; and transmitting the received telephone call data to saidpacket-based telephony service provider through a computer network usingthe accessed contact information.
 23. The method of claim 22 wherein theaccessing is performed prior to the receiving.
 24. The method of claim23 wherein the accessing is performed in response to receiving data fromsaid computer device indicating the user's desire for packet-basedtelephony service.
 25. The method of claim 23 further comprisingtransmitting the accessed contact information to said computer deviceusing a first server, and receiving the accessed contact informationfrom said computer device using a second server.
 26. The method of claim25 wherein the first server is a configuration server and the secondserver is a proxy server.
 27. The method of claim 22 wherein theaccessing is performed after the receiving.
 28. The method of claim 22wherein the telephone call data is signaling data for said telephonecall.
 29. A computer-readable medium having computer-executableinstructions for performing the method of claim
 22. 30. Acomputer-readable medium having computer-executable instructions forperforming operations comprising: sending signaling data for apacket-based telephone call to a first server; and sending call contentdata for said packet-based telephone call to a second server.
 31. Thecomputer-readable medium of claim 30 wherein the first server isassociated with a first party and the second server is associated with asecond party.
 32. The computer-readable medium of claim 31 wherein thesecond party is a packet-based telephony service provider.
 33. Thecomputer-readable medium of claim 32 wherein the first server is a proxyserver for forwarding said signaling data to a server associated withthe second party.
 34. The computer-readable medium of claim 33 furthercomprising sending to the first server contact data for said serverassociated with the second party.
 35. The computer-readable medium ofclaim 34 further comprising receiving said contact data from a thirdserver prior to sending the contact data to the first server.
 36. Thecomputer-readable medium of claim 30 wherein sending signaling dataincludes sending signaling data for said packet-based telephone call tothe first server using an IP-based call signaling protocol.
 37. Thecomputer-readable medium of claim 30 wherein sending call content dataincludes sending call content data for said packet-based telephone callto the second server using a real-time IP-based media streamingprotocol.
 38. A system for managing and supporting packet-basedtelephony, the system comprising: a user database; an account server forreceiving data from a packet-based telephony service provider indicatingthat a user is registered therewith, and for storing data in the userdatabase indicating that the user is registered with the packet-basedtelephony service provider; a configuration server for determining, byaccessing the user database, that the user is registered with thepacket-based telephony service provider, and for sending data to acomputer device associated with the user which enables the computerdevice to exchange data related to a packet-based telephone call withthe packet-based telephony service provider; and a proxy server forreceiving signaling data for the packet-based telephone call from thecomputer device, and for sending the received signaling data to thepacket-based telephony service provider.
 39. The system of claim 38further comprising a referral server for sending to the computer devicea list of a plurality of packet-based telephony service providers, theplurality including said packet-based telephony service provider, forreceiving from the computer device a selection by the user of saidpacket-based telephony service provider, and for storing data in theuser database indicative of the selection by the user.
 40. The system ofclaim 39 wherein the referral server is configured for storing data inthe user database indicating that registration of the user with saidpacket-based telephony service provider is pending, and wherein theaccount server is configured for, in response to receiving said datafrom the packet-based telephony service provider indicating that theuser is registered therewith, modifying data stored in the user databaseto indicate that registration of the user with said packet-basedtelephony service provider has occurred.
 41. The system of claim 38wherein the proxy server is configured for sending the receivedsignaling data to the packet-based telephony service provider usingcontact information for the packet-based telephony service providerstored in the user database.
 42. The system of claim 38 wherein theproxy server is configured for receiving from the packet-based telephonyservice provider signaling data for a packet-based telephone call to theuser, and for sending the signaling data received from the packet-basedtelephony service provider to the computer device.
 43. The system ofclaim 42 wherein the proxy server is configured to access the userdatabase and confirm that the user is registered with the packet-basedtelephony service provider prior to sending the signaling data receivedfrom the packet-based telephony service provider to the computer device.44. The system of claim 42 wherein the proxy server is configured todetermine whether the user has a presence on the computer device priorto sending the signaling data received from the packet-based telephonyservice provider to the computer device.
 45. The system of claim 42wherein the proxy server is configured to send contact information forthe computer device to the packet-based telephony service provider,thereby enabling the packet-based telephony service provider to senddirectly to the computer device call content data for the packet-basedtelephone call to the user.